{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "1686fc00-df58-44de-a124-98680049724a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn import datasets\n",
    "# 导入sklearn自带的iris数据集\n",
    "iris = datasets.load_iris()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9e624277-dc98-4e71-a0be-f7f51d81e2e0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn import datasets\n",
    "from sklearn import svm\n",
    "import pandas as pd \n",
    "import numpy as np\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "2d90c5df-4c5f-4ee7-ba74-5e1c6ee13c05",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal length (cm)</th>\n",
       "      <th>sepal width (cm)</th>\n",
       "      <th>petal length (cm)</th>\n",
       "      <th>petal width (cm)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)\n",
       "0                5.1               3.5                1.4               0.2\n",
       "1                4.9               3.0                1.4               0.2\n",
       "2                4.7               3.2                1.3               0.2\n",
       "3                4.6               3.1                1.5               0.2\n",
       "4                5.0               3.6                1.4               0.2"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)\n",
    "iris_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "59027dec-9347-47c6-a3ef-bd6b5040aaed",
   "metadata": {},
   "outputs": [],
   "source": [
    "X = iris.data\n",
    "y = iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "35af9d11-1fa4-461b-b13a-b883ca6d656a",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=1024)#随机状态"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c6e0869c-315d-4be4-a021-43f1cb4c69b6",
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC\n",
    "classifier=SVC(kernel='linear', C=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "7871cfec-a793-4b2a-af44-1b2bf03cdc71",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(C=100, kernel=&#x27;linear&#x27;)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;&nbsp;SVC<a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.4/modules/generated/sklearn.svm.SVC.html\">?<span>Documentation for SVC</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>SVC(C=100, kernel=&#x27;linear&#x27;)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "SVC(C=100, kernel='linear')"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "classifier.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "60b08a77-91c9-4b1d-81e8-3e41bf94230c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        14\n",
      "           1       1.00      0.88      0.93        16\n",
      "           2       0.88      1.00      0.94        15\n",
      "\n",
      "    accuracy                           0.96        45\n",
      "   macro avg       0.96      0.96      0.96        45\n",
      "weighted avg       0.96      0.96      0.96        45\n",
      "\n"
     ]
    }
   ],
   "source": [
    "y_pred = classifier.predict(X_test) #预测类别标签 \n",
    "\n",
    "# 分类评估报告classification_report\n",
    "from sklearn.metrics import classification_report\n",
    "print(classification_report(y_test,y_pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd4bed73-529e-4575-8a79-c61b94aeefc8",
   "metadata": {},
   "source": [
    "# 聚类法则"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "a78d09da-c778-45b5-8563-0373b295e081",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal length (cm)</th>\n",
       "      <th>sepal width (cm)</th>\n",
       "      <th>petal length (cm)</th>\n",
       "      <th>petal width (cm)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)\n",
       "0                5.1               3.5                1.4               0.2\n",
       "1                4.9               3.0                1.4               0.2\n",
       "2                4.7               3.2                1.3               0.2\n",
       "3                4.6               3.1                1.5               0.2\n",
       "4                5.0               3.6                1.4               0.2"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "iris = datasets.load_iris()\n",
    "iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)\n",
    "iris_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "80c1106a-98bf-4a83-a808-c2520223803f",
   "metadata": {},
   "outputs": [],
   "source": [
    "df=iris_df.iloc[:,0:4]\n",
    "# 转为array\n",
    "X_ori=df.values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "50b3b416-51f1-4176-9850-7ef6994c7dbe",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_all = pd.concat([iris_df.iloc[:,0:4]],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "386f3f58-4427-4bd3-8877-51e0c5b059f0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.90068117,  1.01900435, -1.34022653, -1.3154443 ],\n",
       "       [-1.14301691, -0.13197948, -1.34022653, -1.3154443 ],\n",
       "       [-1.38535265,  0.32841405, -1.39706395, -1.3154443 ],\n",
       "       [-1.50652052,  0.09821729, -1.2833891 , -1.3154443 ],\n",
       "       [-1.02184904,  1.24920112, -1.34022653, -1.3154443 ],\n",
       "       [-0.53717756,  1.93979142, -1.16971425, -1.05217993],\n",
       "       [-1.50652052,  0.78880759, -1.34022653, -1.18381211],\n",
       "       [-1.02184904,  0.78880759, -1.2833891 , -1.3154443 ],\n",
       "       [-1.74885626, -0.36217625, -1.34022653, -1.3154443 ],\n",
       "       [-1.14301691,  0.09821729, -1.2833891 , -1.44707648]])"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "std = StandardScaler()\n",
    "X = std.fit_transform(X_ori*1.0)\n",
    "X_all_ori=df_all.values\n",
    "X_all = std.fit_transform(X_all_ori*1.0)\n",
    "X_all[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "6910cc73-15df-413e-8049-6f303665c7f2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import scipy\n",
    "from scipy.cluster import hierarchy\n",
    "dendro=hierarchy.dendrogram(hierarchy.linkage(X,method='ward'))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bf6f358d-5ee4-4aec-a5eb-741eed97cfb0",
   "metadata": {},
   "source": [
    "# 肘部法则（Elbow method）来寻找最优的聚类个数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "c471b36d-16e8-42c3-a889-d6d01968a26b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'wcss: sum of dist. of sample to their closest cluster center')"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABsn0lEQVR4nO3deVxU9f4/8NcZYIZhG3YQRRZRUcENBMVyCbS8maXdtLRvri1qKqVltlw1TdN+apm3LCuXTG1xubaZS4opJrjvK4uoIMg2rAPMnN8fyOSICwdmGBhez8djHjKfc+bMa7hd5+3n8zmfjyCKoggiIiIiCyUzdwAiIiIiU2KxQ0RERBaNxQ4RERFZNBY7REREZNFY7BAREZFFY7FDREREFo3FDhEREVk0FjtERERk0VjsEBERkUVjsUPUhK1atQqCINzzsWfPHv25/v7+GDVqlP75nj17IAgCfvrpp/oPXgOzZs2CIAiQyWRISkqqdryoqAhOTk4QBMHgc0kxb948bNmypVp71e/10KFDtbquFH369EGfPn1M/j5EjZm1uQMQkfmtXLkSwcHB1drbt29vhjTG5eDggJUrV2LOnDkG7T/++CPKy8thY2NT62vPmzcP//73v/HUU0/VMSURmRKLHSJCSEgIwsPDzR3DJIYNG4bVq1dj9uzZkMn+6cz++uuvMXjwYGzdutWM6YioPkgaxiovL8fo0aPv2iVMRE1TaWkpXn/9dXh7e0OpVKJ37944evRotfO2bt2KHj16wM7ODo6OjujXrx8OHDigP3769GkIgoAff/xR33b48GEIgoAOHToYXGvQoEEICwurUb4xY8YgLS0NO3bs0LdduHAB+/btw5gxY+76GrVajWnTpiEgIAByuRzNmzdHbGwsioqK9OcIgoCioiKsXr1aP+x353BSQUEBxo8fD3d3d7i5uWHIkCG4fv26wTk6nQ4LFy5EcHAwFAoFPD098cILL+Dq1asG54miiIULF8LPzw+2trbo2rUrfv/99xr9DoiaOknFjo2NDTZv3myqLERkJlqtFhUVFQYPrVZbo9e+/fbbSEpKwldffYWvvvoK169fR58+fQz+UbRu3To8+eSTcHJywvr16/H1118jNzcXffr0wb59+wAAHTp0QLNmzbBz507963bu3AmlUokzZ87oi4SKigrExcUhJiamRvlat26Nhx9+GN98842+7ZtvvoG/vz+io6OrnV9cXIzevXtj9erVmDx5Mn7//XdMnz4dq1atwqBBgyCKIgDgwIEDUCqV+Ne//oUDBw7gwIED+OyzzwyuNW7cONjY2GDdunVYuHAh9uzZg+eff97gnPHjx2P69Ono168ftm7dijlz5mDbtm2IiorCzZs39efNnj1bf96WLVswfvx4vPjiizh//nyNfg9ETZoo0ahRo8RFixZJfRkRNUArV64UAdz1YWVlZXCun5+fOHLkSP3z3bt3iwDErl27ijqdTt+ekpIi2tjYiOPGjRNFURS1Wq3o4+MjhoaGilqtVn9eQUGB6OnpKUZFRenbnn/+eTEwMFD/PCYmRnzxxRdFFxcXcfXq1aIoiuL+/ftFAOL27dvv+9lmzpwpAhCzsrLElStXigqFQszOzhYrKirEZs2aibNmzRJFURTt7e0NPtf8+fNFmUwmJiYmGlzvp59+EgGIv/32m77tztfe+XudMGGCQfvChQtFAGJ6erooiqJ49uzZu5538OBBEYD49ttvi6Ioirm5uaKtra04ePBgg/Oqfhe9e/e+7++CqKmTPGcnKCgIc+bMQXx8PMLCwmBvb29wfPLkybWvvIjILNasWYN27doZtAmCUKPXDh8+3OBcPz8/REVFYffu3QCA8+fP4/r164iNjTWYM+Pg4ICnn34aX3zxBYqLi2FnZ4fo6GisXbsWycnJaNasGfbt24fx48cjOzsbO3bswAsvvICdO3dCoVDgoYceqvHne+aZZzB58mR899138Pf3R0ZGxj3vwPrll18QEhKCzp07o6KiQt/+6KOP6u9QGzBgQI3ed9CgQQbPO3bsCABITU2Ft7e3/nd0Z5aIiAi0a9cOu3btwgcffIADBw6gtLQUI0aMMDgvKioKfn5+NcpC1JRJLna++uorODs74/Dhwzh8+LDBMUEQWOwQNULt2rWr9QRlb2/vu7YdP34cAJCdnQ0AaNasWbXzfHx8oNPpkJubCzs7O/3Q1M6dOxEQEIDy8nI88sgjuHHjhv5uqp07d6Jnz55QKpU1zmhvb49hw4bhm2++gZ+fH2JiYu5ZJNy4cQOXLl26511atw8tPYibm5vBc4VCAQAoKSkB8ODfTWpqqsF59/pdE9H9SS52kpOTTZGDiBqpjIyMu7ZVfdFX/Zmenl7tvOvXr0Mmk8HFxQUA0KJFC7Rp0wY7d+6Ev78/wsPD4ezsjOjoaEyYMAEHDx7E33//jdmzZ0vOOWbMGHz11Vc4ceIEvvvuu3ue5+7uDqVSaTDH587jxnL776ZFixYGx65fv65/r6rz7vW79vf3N1omIktU60UFy8rKcP78eYNuXiJqetavX6+ftAtUDtHEx8fr70xq27YtmjdvjnXr1hmcV1RUhI0bN+rv0KoSExODP//8Ezt27EC/fv0AAG3atEHLli3xn//8B+Xl5TWenHy7Hj16YMyYMRg8eDAGDx58z/MGDhyIy5cvw83NDeHh4dUetxcWCoVC30tTG4888ggAYO3atQbtiYmJOHv2rH4Cdffu3WFra1utSIuPj9f3/hDRvUnu2SkuLsakSZOwevVqAJW3cAYGBmLy5Mnw8fHBW2+9ZfSQRGRap06duus/XFq1agUPD4/7vjYzMxODBw/Giy++iPz8fMycORO2traYMWMGAEAmk2HhwoUYMWIEBg4ciJdffhkajQYfffQR8vLy8OGHHxpcLzo6Gp999hlu3ryJjz/+2KB95cqVcHFxqfFt53f6+uuvH3hObGwsNm7ciF69euG1115Dx44dodPpcOXKFWzfvh1Tp05FZGQkACA0NBR79uzBzz//jGbNmsHR0RFt27atcZ62bdvipZdewqeffgqZTIYBAwYgJSUF7733Hnx9ffHaa68BAFxcXDBt2jTMnTsX48aNwzPPPIO0tDTMmjWLw1hENSF1RvPkyZPFsLAw8a+//hLt7e3Fy5cvi6Ioiv/73//Ezp07G3n+NBGZ0v3uxgIgrlixQn/uve7G+vbbb8XJkyeLHh4eokKhEB9++GHx0KFD1d5ry5YtYmRkpGhrayva29uL0dHR4v79+6udl5ubK8pkMtHe3l4sKyvTt3/33XciAHHIkCE1+my33411P3e7o6qwsFB89913xbZt24pyuVxUqVRiaGio+Nprr4kZGRn6844dOyb27NlTtLOzM7grqur3eucdXVW/s927d+vbtFqtuGDBArFNmzaijY2N6O7uLj7//PNiWlqawWt1Op04f/580dfXV5TL5WLHjh3Fn3/+WezduzfvxiJ6AEEUb+tXrgE/Pz98//336N69OxwdHXH8+HEEBgbi0qVL6Nq1K9RqtRFLMSIiIqK6kTxnJysrC56entXai4qKanyrKhEREVF9kVzsdOvWDb/++qv+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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import sklearn\n",
    "%matplotlib inline\n",
    "from sklearn.cluster import KMeans\n",
    "wcss=[]\n",
    "for i in range(1,10):\n",
    "    kmeans=KMeans(n_clusters=i,init='k-means++',)\n",
    "    kmeans.fit(X)\n",
    "    wcss.append(kmeans.inertia_)\n",
    "    \n",
    "plt.plot(range(1,10),wcss)\n",
    "plt.title('Elbow Method')\n",
    "plt.xlabel('No. of cluster')\n",
    "plt.ylabel('wcss: sum of dist. of sample to their closest cluster center' )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "5673a112-a882-488b-bd1b-a224f6f21114",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "kmeans_1=KMeans(n_clusters=3)\n",
    "kmeans_1.fit(X)\n",
    "cluster_pred=kmeans_1.predict(X)\n",
    "cluster_pred_2=kmeans_1.labels_\n",
    "cluster_center=kmeans_1.cluster_centers_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "bfa6aaf2-7163-46f2-a296-363728712dc9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0,\n",
       "       1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0,\n",
       "       0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0,\n",
       "       0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1])"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cluster_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "547b215e-58c3-441f-a388-1803d7af240a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "89cb6383-7f1d-47f2-8fbe-63c0cc4c0120",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.86"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "129/150"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "fae62e9b-3f0b-42c6-aae6-39b9c7229441",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "iris.target"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "444a4b54-e2b8-4ce9-a688-ede594271f48",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.86"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "129/150"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "ed0b0437-91e1-4cc2-bd40-ffbf29454235",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.16743407,  0.14530299,  1.00302557,  1.0300019 ],\n",
       "       [-0.01139555, -0.87600831,  0.37707573,  0.31115341],\n",
       "       [-1.01457897,  0.85326268, -1.30498732, -1.25489349]])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cluster_center"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "67bb7100-f5bb-4452-b946-da2344f0b953",
   "metadata": {},
   "outputs": [],
   "source": [
    "cluster = pd.DataFrame(cluster_pred,columns=['cluster'])\n",
    "df_cluster = pd.concat([iris_df,cluster],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "21a9e2f6-2694-491f-84bc-62d2c6a68a05",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sepal length (cm)</th>\n",
       "      <th>sepal width (cm)</th>\n",
       "      <th>petal length (cm)</th>\n",
       "      <th>petal width (cm)</th>\n",
       "      <th>cluster</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>5.1</td>\n",
       "      <td>3.5</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4.9</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4.7</td>\n",
       "      <td>3.2</td>\n",
       "      <td>1.3</td>\n",
       "      <td>0.2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.6</td>\n",
       "      <td>3.1</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>1.4</td>\n",
       "      <td>0.2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  \\\n",
       "0                5.1               3.5                1.4               0.2   \n",
       "1                4.9               3.0                1.4               0.2   \n",
       "2                4.7               3.2                1.3               0.2   \n",
       "3                4.6               3.1                1.5               0.2   \n",
       "4                5.0               3.6                1.4               0.2   \n",
       "\n",
       "   cluster  \n",
       "0        2  \n",
       "1        2  \n",
       "2        2  \n",
       "3        2  \n",
       "4        2  "
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_cluster.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a8b9d526-e545-409f-a5fe-f70d5af9200f",
   "metadata": {},
   "source": [
    "# wine数据先分离，然后做pca降到2维，判断分类可能性：画肘部，或者层状聚类图，估算几个分类，最后用kmean进行聚类，统计准确率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "897c2713-7024-46a8-9533-ef53d36e12e2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>14.23</td>\n",
       "      <td>1.71</td>\n",
       "      <td>2.43</td>\n",
       "      <td>15.6</td>\n",
       "      <td>127</td>\n",
       "      <td>2.80</td>\n",
       "      <td>3.06</td>\n",
       "      <td>0.28</td>\n",
       "      <td>2.29</td>\n",
       "      <td>5.64</td>\n",
       "      <td>1.04</td>\n",
       "      <td>3.92</td>\n",
       "      <td>1065</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>13.20</td>\n",
       "      <td>1.78</td>\n",
       "      <td>2.14</td>\n",
       "      <td>11.2</td>\n",
       "      <td>100</td>\n",
       "      <td>2.65</td>\n",
       "      <td>2.76</td>\n",
       "      <td>0.26</td>\n",
       "      <td>1.28</td>\n",
       "      <td>4.38</td>\n",
       "      <td>1.05</td>\n",
       "      <td>3.40</td>\n",
       "      <td>1050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>13.16</td>\n",
       "      <td>2.36</td>\n",
       "      <td>2.67</td>\n",
       "      <td>18.6</td>\n",
       "      <td>101</td>\n",
       "      <td>2.80</td>\n",
       "      <td>3.24</td>\n",
       "      <td>0.30</td>\n",
       "      <td>2.81</td>\n",
       "      <td>5.68</td>\n",
       "      <td>1.03</td>\n",
       "      <td>3.17</td>\n",
       "      <td>1185</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>14.37</td>\n",
       "      <td>1.95</td>\n",
       "      <td>2.50</td>\n",
       "      <td>16.8</td>\n",
       "      <td>113</td>\n",
       "      <td>3.85</td>\n",
       "      <td>3.49</td>\n",
       "      <td>0.24</td>\n",
       "      <td>2.18</td>\n",
       "      <td>7.80</td>\n",
       "      <td>0.86</td>\n",
       "      <td>3.45</td>\n",
       "      <td>1480</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>13.24</td>\n",
       "      <td>2.59</td>\n",
       "      <td>2.87</td>\n",
       "      <td>21.0</td>\n",
       "      <td>118</td>\n",
       "      <td>2.80</td>\n",
       "      <td>2.69</td>\n",
       "      <td>0.39</td>\n",
       "      <td>1.82</td>\n",
       "      <td>4.32</td>\n",
       "      <td>1.04</td>\n",
       "      <td>2.93</td>\n",
       "      <td>735</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   0      1     2     3     4    5     6     7     8     9     10    11    12  \\\n",
       "0   1  14.23  1.71  2.43  15.6  127  2.80  3.06  0.28  2.29  5.64  1.04  3.92   \n",
       "1   1  13.20  1.78  2.14  11.2  100  2.65  2.76  0.26  1.28  4.38  1.05  3.40   \n",
       "2   1  13.16  2.36  2.67  18.6  101  2.80  3.24  0.30  2.81  5.68  1.03  3.17   \n",
       "3   1  14.37  1.95  2.50  16.8  113  3.85  3.49  0.24  2.18  7.80  0.86  3.45   \n",
       "4   1  13.24  2.59  2.87  21.0  118  2.80  2.69  0.39  1.82  4.32  1.04  2.93   \n",
       "\n",
       "     13  \n",
       "0  1065  \n",
       "1  1050  \n",
       "2  1185  \n",
       "3  1480  \n",
       "4   735  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_csv('wine.txt',header=None)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "800a528e-2942-4197-a585-1911575539d7",
   "metadata": {},
   "outputs": [],
   "source": [
    "x=df.iloc[:,1:14]\n",
    "y=df.iloc[:,0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "feaadbe0-214b-4e85-a67f-6980fb27f31b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(178, 13)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "600bde02-d376-4c05-9611-ea7e138679ee",
   "metadata": {},
   "outputs": [],
   "source": [
    "# pca降维\n",
    "from sklearn.decomposition import PCA \n",
    "pca = PCA(n_components=2)\n",
    "X_pca = pca.fit_transform(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "0c7b336b-bd25-4a32-ba65-81d2f225cdaf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(178, 2)"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_pca.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "1002fb76-7900-46aa-bfae-e6646753459e",
   "metadata": {},
   "outputs": [],
   "source": [
    "X_ori=X_pca"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "51721ac6-d857-4215-a710-a47cf9fbe474",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 1.51861254, -0.5622498 ,  0.23205254, -1.16959318,  1.91390522,\n",
       "         0.80899739,  1.03481896, -0.65956311,  1.22488398,  0.25171685,\n",
       "         0.36217728,  1.84791957,  1.01300893],\n",
       "       [ 0.24628963, -0.49941338, -0.82799632, -2.49084714,  0.01814502,\n",
       "         0.56864766,  0.73362894, -0.82071924, -0.54472099, -0.29332133,\n",
       "         0.40605066,  1.1134493 ,  0.96524152],\n",
       "       [ 0.19687903,  0.02123125,  1.10933436, -0.2687382 ,  0.08835836,\n",
       "         0.80899739,  1.21553297, -0.49840699,  2.13596773,  0.26901965,\n",
       "         0.31830389,  0.78858745,  1.39514818],\n",
       "       [ 1.69154964, -0.34681064,  0.4879264 , -0.80925118,  0.93091845,\n",
       "         2.49144552,  1.46652465, -0.98187536,  1.03215473,  1.18606801,\n",
       "        -0.42754369,  1.18407144,  2.33457383],\n",
       "       [ 0.29570023,  0.22769377,  1.84040254,  0.45194578,  1.28198515,\n",
       "         0.80899739,  0.66335127,  0.22679555,  0.40140444, -0.31927553,\n",
       "         0.36217728,  0.44960118, -0.03787401],\n",
       "       [ 1.48155459, -0.51736664,  0.30515936, -1.28970717,  0.86070511,\n",
       "         1.56209322,  1.36612798, -0.17609475,  0.66421706,  0.73186953,\n",
       "         0.40605066,  0.33660575,  2.23903902],\n",
       "       [ 1.71625494, -0.4186237 ,  0.30515936, -1.46987817, -0.26270834,\n",
       "         0.32829793,  0.49267693, -0.49840699,  0.6817379 ,  0.08301456,\n",
       "         0.2744305 ,  1.36768901,  1.72952002],\n",
       "       [ 1.3086175 , -0.16727801,  0.89001391, -0.56902319,  1.49262517,\n",
       "         0.48853108,  0.48263726, -0.41782893, -0.59728351, -0.00349944,\n",
       "         0.44992405,  1.36768901,  1.74544249],\n",
       "       [ 2.25977152, -0.62508622, -0.7183361 , -1.65004916, -0.192495  ,\n",
       "         0.80899739,  0.95450162, -0.57898505,  0.6817379 ,  0.06138606,\n",
       "         0.53767082,  0.33660575,  0.94931905],\n",
       "       [ 1.0615645 , -0.88540853, -0.352802  , -1.04947918, -0.12228166,\n",
       "         1.09741707,  1.12517596, -1.14303148,  0.45396697,  0.93517742,\n",
       "         0.23055711,  1.32531572,  0.94931905]])"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "std = StandardScaler()\n",
    "X = std.fit_transform(X_ori*1.0)\n",
    "X_all_ori=x.values\n",
    "X_all = std.fit_transform(X_all_ori*1.0)\n",
    "X_all[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "c92f1da9-9e65-4f53-baf8-f35f7be4418a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Bw9w//59aRsBQEJCAtavX49Hjx6hdu3amDRpEk6dOqW2zCdPnlTbX5X7oJOTEz799FM8e/YMHh4e+OCDD7B06VI0bNgQI0aMQHR0NIKCgpCQkICkpCQsW7YMO3bskF5Xpbq/3L17F1evXkXjxo3x008/wdXVFY8ePUL//v2xYsUKZGRkwM/PD15eXoiOjsaqVasQFxeH27dvo1atWrCysoIQAiYmJkhMTETlypUxdepUab/p168fbty4gUePHsHNzQ0ffPABnJyc0LBhQ0yePBkhISF4+PAhxo0bh99//x2xsbFo0qQJ3njjDaxZswapqalIS0tDvXr18O6772L27NmwtbXFyJEjsXDhQri6umLFihV4/vw5Ll68iN9//x2XLl3CggUL8O2336Jnz54YMWIEDh8+jK+//hoLFy7E8uXLUbt2bTRu3Fhazw8fPoQQAvfv30d2dja2bt2K5ORkVKhQAe+//z4iIiIQFxeHrKws6UadlpaW6NixI0JCQqRyVO3evRt9+/ZV22eVn6GTJ0/i6tWrOHXqlNo6njZtGiZPnoy6desiMzMTAPDnn3/is88+w8qVKzFnzhz06tULly9fRkZGBt566y24urpK+9nDhw+RmZkpbdOtW7fizTffxE8//YSPP/4YpqamiIuLg729PTZt2oTLly9jzJgx+Prrr6V6VKtWDREREfDx8cGXX36JoUOHIjw8HM+ePcPYsWNx9epV3L59G87OzvD09MTq1avRokUL+Pj4wMnJKd9n9tatW8jOzkb16tVx8OBBZGZmwszMTPqevnv3LjZt2oRJkybhm2++gaenJ7p3746VK1fijTfeQFBQEK5evYqaNWuiefPmqF69OgYMGAATExMcO3YMHTt2VPucKufXpUsXzJw5E5UqVYK9vT08PDzg5+cHKysrhIaGwsfHR/peBIBLly4hPT1dWpeqy/H8+XPcvXsXV65cQZ8+fdQ+e0r79u3D8+fP0adPH8TGxmL27NmwsbFBxYoVMWXKFDRq1AhxcXFYtWoV/P39ERwcjL/++guenp7IyspCfHw87O3tERgYCAsNd7b9+eef0aRJE9StW1dt282bNw9ZWVno3bs3jh49iilTpqBJkya4f/8+EhIS8Pz5c+Tk5CAsLAzJycmoWLEivL29YWxsjGrVqqFmzZr5vqt0VepO0R0yZAhef/11fPXV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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import scipy\n",
    "from scipy.cluster import hierarchy\n",
    "dendro=hierarchy.dendrogram(hierarchy.linkage(X,method='ward'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "77d78a03-3847-40e8-af27-356679718dc4",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n",
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'wcss: sum of dist. of sample to their closest cluster center')"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import sklearn\n",
    "%matplotlib inline\n",
    "from sklearn.cluster import KMeans\n",
    "wcss=[]\n",
    "for i in range(1,10):\n",
    "    kmeans=KMeans(n_clusters=i,init='k-means++',)\n",
    "    kmeans.fit(X)\n",
    "    wcss.append(kmeans.inertia_)\n",
    "    \n",
    "plt.plot(range(1,10),wcss)\n",
    "plt.title('Elbow Method')\n",
    "plt.xlabel('No. of cluster')\n",
    "plt.ylabel('wcss: sum of dist. of sample to their closest cluster center' )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "576219fe-e602-4cd4-a190-f579746e62dd",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\86147\\anaconda3\\Lib\\site-packages\\sklearn\\cluster\\_kmeans.py:1446: UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=1.\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "kmeans_1=KMeans(n_clusters=3)\n",
    "kmeans_1.fit(X)\n",
    "cluster_pred=kmeans_1.predict(X)\n",
    "cluster_pred_2=kmeans_1.labels_\n",
    "cluster_center=kmeans_1.cluster_centers_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "0de26ff4-252f-4f47-ae1a-7ac0c906edc0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2,\n",
       "       0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 2, 2, 2, 2, 1, 2,\n",
       "       2, 2, 1, 1, 0, 2, 2, 1, 0, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n",
       "       1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,\n",
       "       2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2,\n",
       "       2, 2, 2, 0, 2, 2, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2, 1,\n",
       "       1, 2])"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cluster_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "981ca6a0-8c2d-44d8-bd46-11c00d55f3f4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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IjY2FpcvX4ZcLsegQYOwcuVKLF++XNTG3t4ex44dw5w5c9C0aVNcv34d2dnZmDlzJo4fPw6FQlHtOPr374+rV69ixowZ8PLyQlRUFBISEtCsWTO88847eOmll0T133vvPXz00Udo3rw5IiIicPz4cRw/flw0os9UPtsjKpUKaWlpFf48GjnatGlTnDlzBiNHjoS1tTWioqJgY2ODhQsXYv/+/bC0rHxsm5+fH86dO4dhw4YhPj4eycnJaNeuHVavXo1vv/1WY5sRI0YgIiICb731Fry9vXH9+nVERETA1tYWI0aMwK+//or33ntP589Opk0mCBqeMhMREZkxXrkREZHkMLkREZHkMLkREZHkMLkREZHkMLkREZHkMLkREZHkMLkREZHkMLmZmJKSkgqX/SCSGr5mS/rCJW9MSEREBBYuXIg7d+6gefPmGDhwIMaNG2fssCSvtLQUFhYWxg6jzsjNzYVKpYIgCHB0dDR2OHVCeno6UlJSYGFhAS8vL1hbWxs7JL3jlZuJiI6OxlNPPQVra2sMGDAAt27dwpdffonJkycbOzRJi46OxrJly5CcnGzsUOqEiIgIjBw5Er169UJAQIB6nTdewenP1atX0b9/f7zwwgto06YNlixZgtLSUmOHpXecfssECIKADz74ANevX8eff/4JAMjLy8PatWvxww8/ICAgAJs2bTJylNITExODzp0748GDB3jvvfcwa9Ys1K9f39hhSVZERAR69uyJiRMnomPHjrhw4QJWrFiBc+fOISgoyNjhSdKjPp88eTImT56Mffv24Z133sHt27fh6elp7PD0isnNREyePBkxMTE4efKkuiw/Px9//PEHvvvuOzz99NNYtGiRESOUltzcXLz55ptQqVTo0KED3njjDfz3v//Fu+++ywSnB+np6Rg3bhxatmwpmti5b9++aNOmDZYvXw5BECCTyYwYpbTcv38fo0aNQnBwsHoNQEEQ8Mwzz+DDDz+EUqmEq6urZJMcn7kZ2aN/0CEhIbh+/TqioqLQsmVLAA8XeHz++ecRHR2No0ePIiUlBe7u7kaOWBrkcjnat28PV1dXjBkzBm5ubhg7diwAMMHpQXFxMTIyMjB69GgAD1cTkMvl8PX1RVpaGgAwsdUymUyGQYMGqfscAD799FMcOHAAd+/exf3799GqVSvMnz9fvd6epBhloR0qJyYm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",
      "text/plain": [
       "<Figure size 480x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn.metrics import confusion_matrix\n",
    "def show_confusion_matrix(cnf_matrix, class_labels):\n",
    "    plt.matshow(cnf_matrix, cmap=plt.cm.YlGn, alpha=0.7)\n",
    "    ax = plt.gca()\n",
    "    ax.set_xlabel('Predicted Label', fontsize=16)\n",
    "    ax.set_xticks(range(0,len(class_labels)))\n",
    "    ax.set_xticklabels(class_labels,rotation=45)\n",
    "    ax.set_ylabel('Actual Label', fontsize=16, rotation=90)\n",
    "    ax.set_yticks(range(0,len(class_labels)))\n",
    "    ax.set_yticklabels(class_labels)\n",
    "    ax.xaxis.set_label_position('top')\n",
    "    ax.xaxis.tick_top()\n",
    "\n",
    "    for row in range(len(cnf_matrix)):\n",
    "        for col in range(len(cnf_matrix[row])):\n",
    "            ax.text(col, row, cnf_matrix[row][col], va='center', ha='center', fontsize=32)\n",
    "\n",
    "class_labels = [0,1,2,3]\n",
    "\n",
    "cnf_matrix = confusion_matrix(y, cluster_pred) \n",
    "show_confusion_matrix(cnf_matrix, class_labels)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "6707fac5-3a52-4562-8d26-0ddf66e0fdb6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.768361581920904\n"
     ]
    }
   ],
   "source": [
    "a=3+11+10+14+3\n",
    "b=177\n",
    "print(1-a/b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a53ec801-10b0-40f2-830c-e0447daa1141",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
